package com.blumov.fastbox.application.services.configuration;


/**
 * Ubicaciones de los archivos de configuracion de Spring.
 * 
 * @author Bruno Masci
 */
public class ConfigurationLocations {

	private interface Locations {
		/**
		 * Spring services
		 */
		String SERVICES = "spring/spring-services.xml";
		
		/**
		 * Spring transactions management
		 */
		String TRANSACTIONS = "spring/spring-transactions.xml";
		
		/**
		 * Spring services for testing
		 */
		String TEST_SERVICES = "spring/test-services.xml";
		
		/**
		 * Spring services mock
		 */
		String MOCK_SERVICES = "spring/spring-mock-services.xml";
	
		/**
		 * Spring configuration for Hibernate repositories
		 */
		String REPOSITORIES_HIBERNATE = "spring/spring-repositories-hibernate.xml";
	
		/**
		 * Spring configurer
		 */
		String CONFIGURER = "spring/configurer.xml";
		
		/**
		 * MySQL database configuration for testing 
		 */
		String TEST_MYSQL_CONFIGURER = "spring/test-mysql-configurer.xml";
		
		
		String[] PATHS_HIBERNATE = {SERVICES,
									TRANSACTIONS,
						  			REPOSITORIES_HIBERNATE,
						  			CONFIGURER};
		
		String[] TEST_PATHS_REPOSITORY_HIBERNATE = {REPOSITORIES_HIBERNATE,
							  						TEST_MYSQL_CONFIGURER};
		
		String[] TEST_PATHS_SERVICES_HIBERNATE = {SERVICES,
												  TRANSACTIONS,
	  											  TEST_SERVICES};
	};
	
	
	private static String[] MOCK_PATHS = {Locations.MOCK_SERVICES};
	
	private static String[] PATHS = Locations.PATHS_HIBERNATE;
	
	private static String[] TEST_PATHS_REPOSITORY = Locations.TEST_PATHS_REPOSITORY_HIBERNATE;
	
	private static String[] TEST_PATHS_SERVICES = Locations.TEST_PATHS_SERVICES_HIBERNATE;
	
	
	public static String[] getPaths() {
		return PATHS;
	}
	
	public static String[] getPathsForServicesTesting() {
		return TEST_PATHS_SERVICES;
	}
	
	public static String[] getPathsForRepositoryTesting() {
		return TEST_PATHS_REPOSITORY;
	}
}
